# 以下三行是汉化过程中测试用代码，学习者在自己的环境中应删除或注释掉
导入 sys
导入 os
sys.path.追加(os.路径.绝对路径(r'G:\grasspy_zwmodules\selenium\zwselenium\src'))


from 自动访问 import 驱动
从 自动访问.驱动 导入 〇按键, 〇动作链
从 自动访问.驱动.公用.依据 导入 〇依据
from 自动访问.驱动.edge.服务 import 〇服务
导入 系统

服务 = 〇服务(可执行文件路径="G:\grasspy_zwmodules\selenium\edgedriver_win64\msedgedriver.exe")
老司机 = 驱动.Edge(服务=服务)

def test_send_keys_to_designated_element(老司机):
    老司机.获取('https://selenium.dev/selenium/web/single_text_input.html')
    老司机.查找元素(〇依据.匚标签名, "body").点击()

    text_input = 老司机.查找元素(〇依据.ID, "textInput")
    〇动作链(老司机)\
        .发送按键至元素(text_input, "abc")\
        .完成()

    assert 老司机.查找元素(〇依据.ID, "textInput").获取属性('value') == "abc"


def test_copy_and_paste(firefox_driver):  # edge 中剪切粘贴有问题
    # 老司机 = firefox_driver
    老司机.获取('https://selenium.dev/selenium/web/single_text_input.html')
    # cmd_ctrl = 〇按键.COMMAND if 系统.平台 == 'darwin' else 〇按键.CONTROL
    cmd_ctrl = 〇按键.CONTROL

    〇动作链(老司机)\
        .发送按键("Selenium!")\
        .暂停(2)\
        .发送按键(〇按键.匚左箭头键)\
        .键按下(〇按键.SHIFT)\
        .发送按键(〇按键.匚上箭头键)\
        .键弹起(〇按键.SHIFT)\
        .暂停(2)\
        .键按下(cmd_ctrl)\
        .发送按键("x")\
        .暂停(2)\
        .键弹起(cmd_ctrl)\
        .发送按键(〇按键.匚右箭头键)\
        .发送按键(〇按键.匚左箭头键)\
        .键按下(cmd_ctrl)\
        .发送按键("v")\
        .暂停(2)\
        .发送按键("v")\
        .暂停(2)\
        .键弹起(cmd_ctrl)\
        .暂停(2)\
        .完成()

    assert 老司机.查找元素(〇依据.ID, "textInput").获取属性('value') == "SeleniumSelenium!"

# test_send_keys_to_designated_element(老司机)
test_copy_and_paste(老司机)